package config

import (
	"fmt"
	"gitee.com/dreamwood/ez"
	"github.com/go-redis/redis"
)

var redisClient *redis.Client

//func init() {
//	initRedis()
//}

type RedisConfig struct {
	Dsn      string `yaml:"dsn"`
	Db       int    `yaml:"db"`
	Password string `yaml:"password"`
}

func InitRedis() *redis.Client {
	ez.Debug("REDIS 开始初始化")
	rc := new(RedisConfig)
	ez.CreateConfigFromYml("./app.yaml", "redis", &rc)
	ez.Debug(fmt.Sprintf("Redis数据库链接DSN：%s", rc.Dsn))
	client := redis.NewClient(&redis.Options{
		Addr:     rc.Dsn, // 指定
		Password: rc.Password,
		DB:       rc.Db, // redis一共16个库，指定其中一个库即可
	})
	go func() {
		_, err := client.Ping().Result()
		ez.PrintError(err)
	}()
	redisClient = client
	ez.Debug("REDIS 初始化完成")
	return client
}

func GetRedis() *redis.Client {
	if redisClient == nil {
		InitRedis()
	}
	return redisClient
}
